{{tag>Feisty Gutsy serveur python tutoriel développement BROUILLON}}

----

====== Installer un serveur d'applications Zope sur Ubuntu ======

===== À propos =====

Actuellement, il existe deux « branches » majeures de Zope : la 2.9.x et la 3.x. 
L'idée étant qu'à la base, Zope 3 devait être une réécriture de zéro de Zope 2 : nouveaux concepts, abandon de certaines lourdeurs de Zope 2, volonté d'être plus « pythonic », etc.

Le projet Zope 3 a commencé il y a plusieurs années déjà et est arrivé à maturité il y a un peu plus d'un an, mais sans compatibilité avec Zope 2. Or Zope 2 possède beaucoup d'extensions : CMS (Plone, CPS), produits de forum, wiki, etc.
Le développement de Zope 2 se poursuit donc et la technologie de Zope 3 est petit à petit rétro-intégrée dans Zope 2. La version 2.10.0-final est sortie le 3 octobre 2006.

Bref aujourd'hui, AMHA, il faut plus voir Zope 3 comme une sorte de laboratoire d'idées de la communauté Zope. Et Zope 2 la version de référence dans laquelle est intégré petit à petit le code de Zope 3 pour une migration en douceur de toutes les extensions déjà développées pour Zope 2.


===== Préambule =====

La présente procédure permet d'installer le serveur d'application Zope sur les distributions Ubuntu 7.04 (Feisty Fawn) et Ubuntu 7.10 (Gutsy Gibbon). Peut-être fonctionne-t-elle aussi sous Uubntu 6.06 LTS (Dapper Drake) (FIXME merci de faire un retour d'expérience ici).

Pour les versions antérieures d'Ubuntu, la procédure est légèrement différente comme vous le constaterez en suivant les consignes sur [[serveur:zope_legacy]] 


===== Installation =====

Assurez-vous d'avoir pris en compte les dépôts "Universe" dans vos sources de mises à jour. Pour notre grand confort, les [[https://wiki.ubuntu.com/MOTU|MotU]] nous ont préparé un méta-paquet qui permettra d'installer tout le nécessaire à l'aide d'un seul paquet et du jeu des inter-dépendances entre les paquets.

[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **zope** et **python-zodb**.

À la fin de l'installation en mode console, on peut voir un message apparaitre :

  Zope2.10: no instances found.


===== Création d'une instance Zope =====

Exécuter la commande suivante pour créer une instance de Zope.

La commande vous demandera le nom d'un répertoire pour y stocker l'instance de Zope (constituée des ces données, fichiers de configuration, journaux, etc.). Personnellement, je l'ai placée dans ''/var/local/zope''. Si d'aventure un lecteur propose un endroit plus judicieux...

La commande réclame aussi un couple d'authentification utilisateur/motdepasse.

  $ cd /usr/lib/zope2.10/bin
  $ sudo python mkzopeinstance.py

  Please choose a directory in which you'd like to install
  Zope "instance home" files such as database files, configuration
  files, etc.
  
  Directory: /var/local/zope/
  Please choose a username and password for the initial user.
  These will be the credentials you use to initially manage
  your new Zope instance.
  
  Username: Dupont
  Password: ****************
  Verify password: ****************



Notre instance est alors créée comme on peut le constater :
  $ cd /var/local/zope/
  $ ls -l

  total 40
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 bin
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 etc
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 Extensions
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 import
  -rw-r--r-- 1 root staff   42 2007-02-26 16:38 inituser
  drwxr-xr-x 3 zope zope  4096 2007-02-26 16:38 lib
  drwxr-xr-x 2 zope zope  4096 2007-02-26 17:01 log
  drwxr-xr-x 2 zope zope  4096 2007-02-26 16:38 Products
  -rw-r--r-- 1 zope zope   481 2007-02-26 16:38 README.txt
  drwxr-xr-x 2 zope zope  4096 2007-02-26 17:01 var



===== Démarrons notre instance Zope =====

<note important>Gutsy et Hardy: Afin que zope utilise python 2.4, il faut le lui spécifier en editant les fichiers ///var/local/zope/bin/runzope// et ///var/local/zope/bin/zopectl// à la ligne 2 comme ceci
PYTHON="/usr/bin/python2.4"
</note>

Nous ajoutons un lien de notre instance dans le dossier //instance// de zope pour le script de démarrage

  sudo ln -s /var/local/zope/ /var/lib/zope2.10/instance/.

Nous pouvons lancer Zope

  sudo /etc/init.d/zope2.10 start


===== Zope is alive! =====

Comme on peut le voir dans un navigateur, notre serveur Zope est opérationnel : [[http://localhost:9673/]]
Comme on peut le remarquer dans l'URL ci-dessus, le port par défaut est 9673 (pensez à ajuster vos [[pare-feu]]x et autres routeurs si vous travaillez sur un serveur distant).


===== Administration du serveur =====

À l'aide des identifiants d'authentification indiqués à la création de l'instance, on peut administrer le serveur à partir de l'URL suivante :
[[http://localhost:9673/manage]]

D'autres commandes sont disponibles dans ''/var/local/zope/bin''.

Des journaux sont disponibles dans ''/var/local/zope/log''.



===== Apache et Zope 2 =====

Nous considérons Apache 2.x installé et fonctionnel, ainsi que Zope 2.

  * Activer les modules :<code>
a2enmod proxy
a2enmod proxy_http
a2enmod rewrite
</code>
  * [[:tutoriel:comment_editer_un_fichier|Éditer votre fichier]] de configuration Apache, **/etc/apache2/sites-available/default**
  * Ajouter les lignes suivantes dans un vhost ou en général :<code apacheconf>
UseCanonicalName On # permet d'eviter de taper les / finaux
RewriteEngine On
RewriteRule ^/adressederedirection(.*) http://localhost:9673/VirtualHostBase/http/votreurl.com:80/VirtualHostRoot/_vh_adressederedirection/$1 [L,P]

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
</code>
Cette règle peut paraître abject, mais tous ces paramètres sont utiles à Zope pour bien nous servir. Voici quelques détails:
  * **9673** est le port du serveur Zope.
  * **votreurl.com** est l'adresse de votre site sans le http
  * **80** est le port du serveur apache
  * **_vh_adressederedirection** est propre a Zope et de renvoyer un URL correct, remplacer adressederedirection par le dossier par lequel vous voulez accéder à votre site depuis le web.

**Exemple:**
http://localhost:8080/VirtualHostBase/http/monsite.com:80/VirtualHostRoot/_vh_zope/$1
  * http://monsite.com/zope mènera à notre serveur Zope.
  * http://monsite.com/zope/manage à l'interface d'administration de Zope (ZMI)
  * http://localhost:8080/manage à la ZMI également

Si vous passez par SSL et https vous devez p.ex. le spécifier comme ceci: https/votreurl.com:443


  * Continuons la configuration, avec le proxy d'apache
  * Editer le fichier ///etc/apache2/mods-available/proxy.conf//
  * Tout effacer et remplacer par ceci, toujours en adaptant les valeurs.
<code>
ProxyRequests Off
ProxyVia On
<Proxy *>
        Order deny,allow
        Allow from votreurl.com
        Allow from localhost
</Proxy>
</code>

  * Enfin, recharger la config d'apache
<code>
$ /etc/init.d/apache2 force-reload
</code>


===== Apprendre Zope =====
Voici un lien vers la [[http://www.zope.org/Documentation/ZopeBook/|documentation de Zope]]

Un tutoriel est disponible dans l'instance nouvellement créée et permet de découvrir quelques fonctionnalités de Zope dans son interface d'administration. Pour le débutant, c'est un excellent point de départ, chaudement recommandé !

{{serveur:zope2_admin_01.png|}}




===== Liens =====

  * [[http://www.zope.org|Le site du projet Zope]]
  * [[http://www.plope.com/Books/2_7Edition|Zope 2.9 Documentation]] [EN]
  * [[http://www.zopera.org/|Le portail Zope francophone]]
  * [[http://www.plone.org|Le site de Plone]]

----

//Contributeurs : [[:utilisateurs:tbonacco|Thomas]] ([[https://wiki.ubuntu.com/ZopeOnUbuntu|traduction originale]]), [[:utilisateurs:sunwukong|SunWukong]], [[:utilisateurs:rorist|Rorist]].//